<!DOCTYPE html>
<html lang="en">
  <head>
    <meta charset="UTF-8" />
    <meta http-equiv="X-UA-Compatible" content="IE=edge" />
    <meta name="viewport" content="width=device-width, initial-scale=1.0" />
    <title>Promise</title>
  </head>
  <body>
    <!-- Promise: 是ES6新增的一个对象类型, 可以帮助实现异步函数的 同步执行效果;  解决之前的回调函数多层嵌套导致的 回调地狱 问题 -->
    <script>
      // 基本语法: 固定的需要熟练掌握
      new Promise((resolve, reject) => {
        // resolve的参数随便写
        // resolve调用时会触发 then中的箭头函数
        // resolve的参数, 会传递给then中的箭头函数
        // resolve({ code: 200, msg: '我是resolve' })
        // resolve(13)

        // 调用reject 会触发 catch 中的箭头函数
        // 其中的参数会传递给 箭头函数
        reject(55)

        // resolve 和 reject 是二选一, 不能同时触发
        // 因为后续使用场景是 网络请求时使用:  要么成功要么失败
        // 请求成功=触发resolve, 请求失败=触发reject
      })
        .then(res => {
          console.log('res:', res)
        })
        .catch(err => {
          console.log('err:', err)
        })
    </script>
  </body>
</html>
